package com.ruoyi.bussine.domain.dto.wechat.miniPay;

import lombok.Data;

import java.util.Date;

/**
 * 微信支付请求发起接口
 * https://pay.weixin.qq.com/doc/v3/merchant/4012791897
 *
 * @author zhengyz
 * @date 2025/3/21
 */
@Data
public class WechatPayReqDTO {

    /**
     * 必填
     * 【公众账号ID】是商户在微信开放平台（移动应用）或公众平台（公众号/小程序）上申请的一个唯一标识。需确保该appid与mchid有绑定关系，具体请参考普通商户模式开发必要参数说明。
     */
    private String appid;
    /**
     * 必填
     * 【商户号】是由微信支付系统生成并分配给每个商户的唯一标识符，商户号获取方式请参考普通商户模式开发必要参数说明。
     */
    private String mchid;
    /**
     * 必填
     * 【商品描述】商品信息描述，用户微信账单的商品字段中可见(可参考JSAPI支付示例说明-账单示意图)，商户需传递能真实代表商品信息的描述，不能超过127个字符。
     */
    private String description;
    /**
     * 必填
     * 【商户订单号】商户系统内部订单号，要求6-32个字符内，只能是数字、大小写字母_-|* 且在同一个商户号下唯一。
     */
    private String out_trade_no;
    /**
     * 必填
     * 【商户回调地址】商户接收支付成功回调通知的地址，需按照notify_url填写注意事项规范填写。
     */
    private String notify_url;

    /**
     * 必填
     * 【订单金额】订单金额信息
     */
    private WechatPayAmountDTO amount;
    /**
     * 必填
     * 【支付者信息】支付者信息
     */
    private WechatPayPayerDTO payer;
    /**
     * 选填
     * 支付结束时间（取消订单需要额外调接口）
     */
    private Date time_expire;
    /**
     * 选填
     * 【商户数据包】商户在创建订单时可传入自定义数据包，该数据对用户不可见
     */
    private String attach;
    /**
     * 选填
     * 订单优惠标记
     */
    private String goods_tag;
    /**
     * 选填
     * 【电子发票入口开放标识】 传入true时，支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能，传此字段才可生效。 详细参考：电子发票介绍
     * true：是
     * false：否
     */
    private boolean support_fapiao;

}
